package org.michaelrenaud.pathfinder.client.gin;

import com.google.gwt.inject.client.GinModules;
import com.gwtplatform.dispatch.client.gin.DispatchAsyncModule;

import org.michaelrenaud.pathfinder.client.core.app.AppPresenter;
import org.michaelrenaud.pathfinder.client.gin.ClientModule;
import com.google.gwt.inject.client.Ginjector;
import com.google.gwt.event.shared.EventBus;
import com.gwtplatform.mvp.client.proxy.PlaceManager;
import com.google.gwt.inject.client.AsyncProvider;
import org.michaelrenaud.pathfinder.client.core.app.character.CharacterPresenter;
import org.michaelrenaud.pathfinder.client.core.app.combat.CombatPresenter;

@GinModules({ DispatchAsyncModule.class, ClientModule.class })
public interface ClientGinjector extends Ginjector {

	EventBus getEventBus();

	PlaceManager getPlaceManager();

	AsyncProvider<AppPresenter> getAppPresenter();

	AsyncProvider<CharacterPresenter> getCharacterPresenter();

	AsyncProvider<CombatPresenter> getCombatPresenter();
}
